main: Only verify SUPERUSER flag if using default sysroot
authorColin Walters <walters@verbum.org>
Wed, 1 Apr 2015 10:21:34 +0000 (06:21 -0400)
committerColin Walters <walters@verbum.org>
Wed, 1 Apr 2015 10:21:34 +0000 (06:21 -0400)
The use case for non-default sysroots that I know of are:
 1) The current test suite
 2) Installers (Anaconda)
 3) Inspecting VM disks

For 2) and 3), it'll quickly be obvious if they're not running as
root, and these are more obscure cases.  We want to allow 1), and this
is a simple way to do it.

https://bugzilla.gnome.org/show_bug.cgi?id=747164

src/ostree/ot-main.c

index 10ff748e629cc2da6308c9aee065bf65b8aacd5f..1cff1f445a12c7dc9850f745112367a7e07826d6 100644 (file)
@@ -327,7 +327,8 @@ ostree_admin_option_context_parse (GOptionContext *context,
 
   if (flags & OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER)
     {
-      if (getuid () != 0)
+      if ((opt_sysroot == NULL || strcmp (opt_sysroot, "/") == 0)
+          && getuid () != 0)
         {
           g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
                        "You must be root to perform this command");